package com.azt.provider.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.azt.api.dto.GiftInfoData;
import com.azt.api.pojo.GiftExchange;
import com.azt.api.pojo.GiftInfo;
import com.azt.api.pojo.PrizeSet;

import tk.mybatis.mapper.common.Mapper;

public interface GiftInfoMapper extends Mapper<GiftInfo> {
	
	 public List<GiftInfo> giftInfoList(Map<String, String> param);
	 
	 /**
	  * 获取最大id
	  * @Title: getMaxIdFormGiftInfo 
	  * @Description: TODO
	  * @return
	  * @return: Integer
	  * @author: zhoudongdong 2017年2月16日 上午9:23:19
	  */
	 public Integer getMaxIdFormGiftInfo();
	 
	 public void plChangeGiftState(String ids);
	 
	 public void plDeleteGiftInfo(String ids);
	 
	 public void updateGiftStateOne(String id);

	/** 
	 * @Title: getGiftInfoData 
	 * @Description: TODO
	 * @param minPoint
	 * @param maxPoint
	 * @param state 开放状态
	 * @param exchangeState 兑换状态
	 * @return
	 * @return: GiftInfoData
	 * @author: 查恒 2017年2月20日 上午10:19:20 
	 */
	public List<GiftInfoData> getGiftInfoData(@Param("minPoint")Integer minPoint, @Param("maxPoint")Integer maxPoint, @Param("state")Integer state ,@Param("exchangeState")Integer exchangeState);
	
	/**
	 * 根据用户id查询可兑换的最高级礼品
	 * @Title: selectCanExchangeMax 
	 * @Description: TODO
	 * @param userId
	 * @return
	 * @return: GiftInfo
	 * @author: zhoudongdong 2017年3月2日 上午11:14:01
	 */
	public GiftInfo selectCanExchangeMax(Integer userId);
	
	
	/**
	 * 根据用户id查询不可兑换的最低级礼品
	 * @Title: selectCanNotExchangeMin 
	 * @Description: TODO
	 * @param userId
	 * @return
	 * @return: GiftInfo
	 * @author: zhoudongdong 2017年3月2日 上午11:14:52
	 */
	public GiftInfo selectCanNotExchangeMin(Integer userId);
	
	
	/** 
	 * @Title: selectHotGifts 
	 * @Description: 获取热门礼品
	 * @param offset
	 * @param limit
	 * @return
	 * @return: GiftInfoData
	 * @author: 杨程 2017年3月7日 下午3:14:10 
	 */
	public List<GiftInfoData> selectHotGifts(@Param("offsetnum")Integer offset,@Param("limitnum")Integer limit,@Param("state")Integer state);
	
	/**
	 * 根据 礼品ID查询礼品详情
	 * @Title: selectGiftInfoDetail 
	 * @Description: TODO
	 * @param giftId
	 * @return
	 * @return: GiftInfoData
	 * @author: 杨程 2017年3月7日 上午11:14:01
	 */
	public GiftInfoData selectGiftInfoDetail(@Param("giftId")Integer giftId);
	

	 /**
	  * 修改礼品库存
	  * @Title: updateGiftStock 
	  * @Description: TODO
	  * @return
	  * @return: void
	  * @author: yangcheng 2017年3月9日 上午9:23:19
	  */
	public void updateGiftStock(@Param("giftId")Integer giftId,@Param("amount")Integer amount);


	/**
	 * 获取最小兑换积分
	 * @return
	 */
	int getMinIntegralAmount();
}